"""
3151. 特殊数组 I
简单
相关标签
相关企业
提示
如果数组的每一对相邻元素都是两个奇偶性不同的数字，则该数组被认为是一个 特殊数组 。

你有一个整数数组 nums。如果 nums 是一个 特殊数组 ，返回 true，否则返回 false。



示例 1：

输入：nums = [1]

输出：true

解释：

只有一个元素，所以答案为 true。

示例 2：

输入：nums = [2,1,4]

输出：true

解释：

只有两对相邻元素： (2,1) 和 (1,4)，它们都包含了奇偶性不同的数字，因此答案为 true。

示例 3：

输入：nums = [4,3,1,6]

输出：false

解释：

nums[1] 和 nums[2] 都是奇数。因此答案为 false。



提示：

1 <= nums.length <= 100
1 <= nums[i] <= 100
"""
from itertools import pairwise
from typing import List


class Solution:
    def isArraySpecial(self, nums: List[int]) -> bool:
        # length = len(nums)
        # for i in range(length):
        #     if i <length-1 and nums[i] % 2 == nums[i+1] % 2:
        #         return False
        # return True
        '''
        1.all 函数接受一个可迭代对象（在这里是一个生成器表达式），并返回 True 如果可迭代对象中的所有元素都为 True，否则返回 False
        2.若nums = [1, 2, 3, 4]，那么 pairwise(nums) 会生成 [(1, 2), (2, 3), (3, 4)]。
        '''
        return all( x%2 != y%2 for x,y in pairwise(nums) )
if __name__ == '__main__':
    s = Solution()
    print(s.isArraySpecial([4, 3, 2, 1, 6,2]))